

export const getAllContentWindow = () => {
  const winList: Window[] = []
  function mapAllIframeWindows(win: Window = window) {
    // 获取所有的 iframe 元素
    const iframes = win.document.getElementsByTagName('iframe');

    // 遍历所有的 iframe 元素
    for (let i = 0; i < iframes.length; i++) {
      const iframe = iframes[i];
      try {
        // 尝试访问 iframe 的 document 对象
        iframe.contentWindow.document;

        mapAllIframeWindows(iframe.contentWindow)

        // 如果成功，说明同源，将 window 对象添加到数组中
        winList.push(iframe.contentWindow);
      } catch (e) {
        // 如果抛出异常，说明跨域，丢弃该 iframe
        console.warn('丢弃非同源的 iframe：', e);
      }
    }

  }
  mapAllIframeWindows()
  return winList
}

export const getRoot = () => {
  const winList = getAllContentWindow()
  return winList.find(t => (t as any).mainFrame)
}


export const getRootDocument = () => {
 return getRoot()?.document
}
